﻿using System;
using Fetches.Fetch.Dto;

namespace Fetches.Fetch.Fetcher.AntiSpider
{
    /// <summary>
    /// 反爬探测，判断是否遇到反爬，应对交给Fetcher来做
    /// TODO:根据https://scrape.center/的挑战逐步完善反爬应对
    /// TODO:实现反爬探测器序列化和反序列化用于方便FetchOrder设置反爬探测条件
    /// </summary>
    public class AntiSpiderDetector:IDisposable
    {
        /// <summary>
        /// 由反爬探测器判断是否掉入反爬策略
        /// </summary>
        /// <param name="page"></param>
        /// <returns>返回null时代表未判断未被ban</returns>
        public AntiSpiderEvent AntiDetect(ResponsePage page)
        {
            return null;
        }

        /// <summary>
        /// 添加策略判断规则，如页面包含指定文字为代表需要重新登录，包含某文字代表需要填写验证码
        /// </summary>
        /// <param name="antiRule"></param>
        public void AddAntiCheckRule(AntiSpiderRule antiRule)
        {

        }

        public void Dispose()
        {
        }
    }
}
